package main

import (
	"fmt"
	"net"
)

func main() {
	//创建UDP监听地址
	udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8089")
	if err != nil {
		fmt.Println("ResolveUDPAddr err:", err)
		return
	}

	//监听UDP数据
	conn, err := net.ListenUDP("udp", udpAddr)
	if err != nil {
		fmt.Println("ListenUDP err:", err)
		return
	}
	defer conn.Close()

	buf := make([]byte, 1024)
	//读取客户端发送的数据
	n, raddr, err := conn.ReadFromUDP(buf)
	if err != nil {
		return
	}
	fmt.Printf("客户端%s发送：%s\n", raddr, string(buf[:n]))

	//向客户端发送数据
	_, err = conn.WriteToUDP([]byte("这是UDP服务端"), raddr)
	if err != nil {
		fmt.Println("WriteToUDP err", err)
		return
	}

}
